#define _CRT_SECURE_NO_WARNINGS 1

//#include <iostream>
//using namespace std;
//double Fun()
//{
//	return 3.14;
//}
//
//int main()
//{
//	int a = 10;
//	auto b = a;
//	auto c = 'A';
//	auto d = Fun();
//	//��ӡ����b,c,d������
//          typeid().name() ���Բ鿴����
//	cout << typeid(b).name() << endl;//��ӡ���Ϊint
//	cout << typeid(c).name() << endl;//��ӡ���Ϊchar
//	cout << typeid(d).name() << endl;//��ӡ���Ϊdouble
//	return 0;
//}


//auto��ָ�������ͬʱʹ��
//#include <iostream>
//using namespace std;
//int main()
//{
//	int a = 10;
//	auto b = &a;   //�Զ��Ƶ���b������Ϊint*
//	auto* c = &a;  //�Զ��Ƶ���c������Ϊint*
//	auto& d = a;   //�Զ��Ƶ���d������Ϊint
//	//��ӡ����b,c,d������
//	cout << typeid(b).name() << endl;//��ӡ���Ϊint*
//	cout << typeid(c).name() << endl;//��ӡ���Ϊint*
//	cout << typeid(d).name() << endl;//��ӡ���Ϊint
//	return 0;
//}


//��ͬһ�ж������������ᱨ����
//int main()
//{
//	auto a = 1, b = 2; //��ȷ
//	auto c = 3, d = 4.0; //��������������auto������ʼ���Ƶ�Ϊͬһ����
//	return 0;
//}


//auto�����Ƶ��ĳ���
// 
//1.auto������Ϊ��������
//void TestAuto(auto x)
//{
//
//}
//2.auto������������
//int main()
//{
//	int a[] = { 1, 2, 3 };
//	auto b[] = { 4, 5, 6 };//error
//	return 0;
//}

//#include<iostream>
//using std::cout;
//using std::endl;
//
////��Χfor���﷨
//int main()
//{

	//int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
	////������Ԫ��ֵȫ������2
	//for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); i++)
	//{
	//	arr[i] *= 2;
	//}
	////��ӡ�����е�����Ԫ��
	//for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); i++)
	//{
	//	cout << arr[i] << " ";
	//}
	//cout << endl;


//	int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
//	//������Ԫ��ֵȫ������2
//	for (auto& e : arr)
//	{
//		e *= 2;
//	}
//	//��ӡ�����е�����Ԫ��
//  //����ȡ�����е����ݸ�ֵ��e
//   //�Զ��жϽ���
//   //�Զ�����
//	for (auto e : arr)
//	{
//		cout << e << " ";
//	}
//	cout << endl;
//}


#include <iostream>
using namespace std;
// void Fun(int p)
// {
// 	cout << "Fun(int)" << endl;
// }
void Fun(int* p)
{
	cout << "Fun(int*)" << endl;
}
int main()
{
	Fun(0);           //��ӡ���Ϊ Fun(int)
	Fun(NULL);        //��ӡ���Ϊ Fun(int)
	Fun((int*)NULL);  //��ӡ���Ϊ Fun(int*)
	return 0;
}